package one.stand.service;

import one.stand.model.CompanyAccountModel;
import one.stand.model.FinanceModel;
import one.stand.model.MenuModel;
import one.stand.model.ResultModel;
import one.stand.request.*;
import one.stand.response.AdminResponse;
import one.stand.response.CompanyResponse;
import one.stand.response.VersionResponse;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;
import java.util.Map;

/**
 * @author Administrator
 */
public interface CompanyService {

    ResultModel<AdminResponse> login(AdminRequest request);

    ResultModel<Boolean> checkingToken(String token);

    ResultModel<Boolean> auditCompany(CompanyRequest request);

    ResultModel<Boolean> addCompanyService(CompanyServiceRequest request);

    ResultModel<Map<String, Object>> selectAdminRecordList(AdminRecordRequest request);

    ResultModel<Map<String, Object>> selectAdminList(AdminRequest request);

    ResultModel<Boolean> delAdmin(AdminRequest request);

    ResultModel<Boolean> inserAdminRole(AdminRequest request);

    ResultModel<List<MenuModel>> selectMenuList();

    ResultModel<Integer> saveAdmin(AdminRequest request);

    ResultModel<FinanceModel> indexData(FinanceRequest request);

    ResultModel<Map<String, List<Map<String, Object>>>> newCountList(FinanceRequest request);

    ResultModel<Map<String, Object>> dataCenter(FinanceRequest request);

    ResultModel<List<Map<String, Object>>> newUserCountList(FinanceRequest request);

    ResultModel<List<Map<String, Object>>> userUseCountList(FinanceRequest request);

    ResultModel<List<Map<String, Object>>> userSexCount(FinanceRequest request);

    ResultModel<Map<String, Object>> selectCompanyList(CompanyRequest request);

    ResultModel<Boolean> selectCompanyListExport(CompanyRequest request);

    ResultModel<CompanyResponse> getCompanyInfo(CompanyRequest request);

    ResultModel<Map<String, Object>> selectAgentCompanyList(CompanyRequest request);

    ResultModel<Boolean> configureAgen(CompanyRequest request);

    ResultModel<Map<String, Object>> appletCodeManage(VersionRequest request);

    ResultModel<VersionResponse> appletCodeManageInfo(VersionRequest request);

    ResultModel<Boolean> addVersionInfo(VersionRequest request);

    ResultModel<List<String>> selectAppId(Integer versionId);

    ResultModel<Map<String, Object>> selectCompanyAccountList(CompanyAccountRequest request);

    ResultModel<Boolean> updateAgentCompanyId(CompanyRequest request);
}
